package com.wframe.project.jnd.entity;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

/**
 * Created by Administrator on 2017/5/12.
 */
public class Payment implements Serializable {

    public enum PayOrderType {
        /**
         * 商品订单
         */
        PRODUCT_ORDER;

    }

    public enum PayWay {
        /**
         * 微信扫码支付
         */
        WECHAT_QR,
        /**
         * 微信公众号支付
         */
        WECHAT_MP
    }

    public enum PayState {
        /**
         * 已生成支付信息
         */
        GENERATED,
        /**
         * 已提交支付信息
         */
        SUBMITTED,
        /**
         * 支付成功
         */
        SUCCESS,
        /**
         * 支付失败;
         */
        FAILURE,
        /**
         * 已发起退款
         */
        LAUNCH_REFUND,
        /**
         * 已退款成功
         */
        REFUND_SUCCESS,
        /**
         * 已退款失败
         */
        REFUND_FAIL
    }

    private Long id;
    private String sn;
    private BigDecimal amount;
    private PayOrderType order_type;
    private String order_sn;
    private PayWay pay_way;
    private String pay_sn;
    private PayState pay_state;
    private Date create_time;
    private Date pay_time;
    private Date refund_time;
    private String fail_reason;
    private String remark;

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getSn() {
        return sn;
    }

    public void setSn(String sn) {
        this.sn = sn;
    }

    public BigDecimal getAmount() {
        return amount;
    }

    public void setAmount(BigDecimal amount) {
        this.amount = amount;
    }

    public PayOrderType getOrder_type() {
        return order_type;
    }

    public void setOrder_type(PayOrderType order_type) {
        this.order_type = order_type;
    }

    public String getOrder_sn() {
        return order_sn;
    }

    public void setOrder_sn(String order_sn) {
        this.order_sn = order_sn;
    }

    public PayWay getPay_way() {
        return pay_way;
    }

    public void setPay_way(PayWay pay_way) {
        this.pay_way = pay_way;
    }

    public String getPay_sn() {
        return pay_sn;
    }

    public void setPay_sn(String pay_sn) {
        this.pay_sn = pay_sn;
    }

    public PayState getPay_state() {
        return pay_state;
    }

    public void setPay_state(PayState pay_state) {
        this.pay_state = pay_state;
    }

    public Date getCreate_time() {
        return create_time;
    }

    public void setCreate_time(Date create_time) {
        this.create_time = create_time;
    }

    public Date getPay_time() {
        return pay_time;
    }

    public void setPay_time(Date pay_time) {
        this.pay_time = pay_time;
    }

    public Date getRefund_time() {
        return refund_time;
    }

    public void setRefund_time(Date refund_time) {
        this.refund_time = refund_time;
    }

    public String getFail_reason() {
        return fail_reason;
    }

    public void setFail_reason(String fail_reason) {
        this.fail_reason = fail_reason;
    }

    public String getRemark() {
        return remark;
    }

    public void setRemark(String remark) {
        this.remark = remark;
    }
}
